package task11;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

/**
 * Create by IntelliJ IDEA
 *
 * @author: jsonor
 * @date-Time: 2018/4/27 8:10
 * @description: HasMap集合添加元素、遍历
 */
public class Test1 {

  public static void main(String[] args) {
    //1、创建HapMap对象
    //2、添加元素
    //3、遍历（2种方法）
    HashMap<Integer,String> stringHashMap=new HashMap<Integer,String>();
    stringHashMap.put(1,"zhangsan");
    stringHashMap.put(1,"lisi");
    stringHashMap.put(2,"wangwu");
    stringHashMap.put(3,"wangwu");

    /*遍历方式1、键找值
        1 获取所有键的集合
        2 遍历键的集合，得到每一个键
        3 根据键到集合中去找值
     */
//得到的是所有键集合的迭代器
    Iterator<Integer> iterator=stringHashMap.keySet().iterator();
    while (iterator.hasNext()){
//循环得到每一个键
      Integer key=(Integer) iterator.next();
//根据键来获取值
      String value=stringHashMap.get(key);
      System.out.println(key+":"+value);
    }


    /*遍历方式2：键值对对象找键和值（集合中元素多的时候，效率更高）
             1 获取所有的键值对对象的集合
             2 遍历键值对对象的集合，获取每一个键值对对象
             3 根据键值对对象去获取键和值
     */
    // 得到的是键值对对象集合的迭代器
    Iterator entryIterator=stringHashMap.entrySet().iterator();
    while (entryIterator.hasNext()){
      //循环得到的是没一对键值对对象
      Entry<Integer,String> entry=(Entry<Integer,String>) entryIterator.next();
      Integer key =entry.getKey();
      String value=entry.getValue();
      System.out.println(key+"--"+value);
    }

  }
}
